#include<stdio.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<string.h>
#include<unistd.h>

#define FILENAME "log.txt"
#define MODY 0666

int main()
{
	fprintf(stdout, "hello normal mes!\n");
	fprintf(stdout, "hello normal mes!\n");
	fprintf(stdout, "hello normal mes!\n");
	fprintf(stdout, "hello normal mes!\n");
	
	fprintf(stderr, "hello error mes!\n");
	fprintf(stderr, "hello error mes!\n");
	fprintf(stderr, "hello error mes!\n");
	fprintf(stderr, "hello error mes!\n");
	return 0;
}


//int main()
//{
//	int fd = open(FILENAME, O_CREAT | O_WRONLY | O_APPEND, MODY);
//	if(fd < 0){
//		perror("open");
//		return 1;
//	}
//	dup2(fd, 1);
//	const char* mes = "hello linux\n";
//	printf("fd : %d\n", fd);
//	printf("%s", mes);
//	fprintf(stdout, "%s", mes);
//	close(fd);
//	return 0;
//}


//
//int main()
//{
//	int fd = open(FILENAME, O_RDONLY);
//	if(fd < 0){
//		perror("open");
//		return 1;
//	}
//
//	dup2(fd, 0);
//	char buffer[1024] = {0};
//	ssize_t s = read(0, buffer, sizeof(buffer) - 1); //C语言的最后一个位置要求'\0'
//	if(s > 0)
//	{
//		buffer[s] = '\0';
//		printf("echo#: %s", buffer);
//	}
//	return 0;
//}


//追加重定向
//int main()
//{
//	int fd = open(FILENAME, O_CREAT | O_WRONLY | O_APPEND, MODY);
//	if(fd < 0){
//		perror("open");
//		return 1;
//	}
//	dup2(fd, 1);
//	const char* mes = "hello linux\n";
//	write(1, mes, strlen(mes));
//	close(fd);
//	return 0;
//}
//

//输出重定向
//int main()
//{
//	//close(1);
//	//int fd = open(FILENAME, O_CREAT | O_WRONLY | O_TRUNC, MODY);
//	if(fd < 0){
//		perror("open");
//		return 1;
//	}
//	dup2(fd, 1); //拷贝到1号位置
//	//printf("fd : %d\n", fd);
//	const char* mes = "hello linux\n";
//	//int cnt = 5;
//	//while(cnt--)
//	//{
//	//	write(1, mes, strlen(mes));
//	//}
//	close(fd);
//	return 0;
//}
//
